package com.yzkj.siot.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yzkj.siot.domain.TenantDeviceData;
import com.yzkj.siot.dto.DataExportDTO;
import com.yzkj.siot.result.PageParams;
import com.yzkj.siot.vo.DeviceDataSummaryVO;

import java.util.List;

/**
 * <p>
 * 设备
 * 服务类
 * </p>
 *
 * @author skye
 * @since 2021-11-07
 */
public interface TenantDeviceDataService extends IService<TenantDeviceData> {

    /**
     * 获取设备数据统计值
     *
     * @param timeGranularity 时间间隔粒度(分钟)
     * @param productDataId   数据解析协议Id
     * @param startTime       时间区间-开始
     * @param endTime         时间区间-结束
     */
    List<DeviceDataSummaryVO> querySummary(Integer timeGranularity,
                                           Integer productDataId,
                                           String startTime,
                                           String endTime);

    /**
     * 获取当月数据总量
     */
    Integer curMonthCount();
    
    Integer countExportData(int tenantId, int productId, int productDataId, int deviceId);
    
    List<DataExportDTO> pageExportData(int tenantId, int productId, int productDataId, int deviceId, PageParams<DataExportDTO> pageParam);
}
